package com.baizhi.mapper;

import com.baizhi.dto.response.StudentScoreDTO;
import com.baizhi.entity.Course;
import com.baizhi.entity.StudentCourse;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author 16357
* @description 针对表【t_course】的数据库操作Mapper
* @createDate 2024-08-14 10:13:27
* @Entity com.baizhi.entity.Course
*/
public interface CourseMapper extends BaseMapper<Course> {
    /**
     * 根据学生ID查询学生的成绩
     * @param stuId 学生ID
     * @return 返回学生成绩列表  包括学生成绩和课程ID，课程名
     */
    List<StudentScoreDTO> queryScoreByStudentIdAndCourseId(@Param("stuId") Integer stuId);


    /**
     * 根据学生ID和课程ID删除 student_course表中的数据
     * @param stuId 学生ID
     * @param courseId 课程ID
     * @return 成功-1  失败-0
     */
    Integer deleteMyCourseByStuIdAndCourseId(@Param("stuId") Integer stuId,@Param("courseId") Integer courseId);


    /**
     * 根据学生ID查询课程
     * @param stuId 学生ID
     * @return 返回课程列表  一对多
     */
    List<Course> queryMyCourseByStudentId(Integer stuId);

    /**
     * 学生选课的方法
     * @param stuId 学生ID
     * @param courseId 课程ID
     * @return 成功返回1 失败返货0
     */
    Integer  addCourse(@Param("stuId") Integer stuId, @Param("courseId") Integer courseId);

    /**
     * 根据学生ID和课程ID查询数据
     * 用于判断课程是否重复
     * @param stuId  学生ID
     * @param courseId 课程ID
     * @return 成功返回StudentCourse对象，失败返回null
     */
    StudentCourse queryCourseByStudentIdAndCourseId(@Param("stuId") Integer stuId, @Param("courseId") Integer courseId);

}




